home *** CD-ROM | disk | FTP | other *** search
/ Workbench Add-On / Workbench Add-On - Volume 1.iso / BBS-Archive / Dev / gcc263-src.lha / gcc-2.6.3 / config / mips / svr4-5.h < prev    next >
C/C++ Source or Header  |  1994-08-14  |  3KB  |  91 lines

  1. /* Definitions of target machine for GNU compiler.  MIPS RISC-OS 5.0 System V.4 version.
  2.    Copyright (C) 1992 Free Software Foundation, Inc.
  3.  
  4. This file is part of GNU CC.
  5.  
  6. GNU CC is free software; you can redistribute it and/or modify
  7. it under the terms of the GNU General Public License as published by
  8. the Free Software Foundation; either version 2, or (at your option)
  9. any later version.
  10.  
  11. GNU CC is distributed in the hope that it will be useful,
  12. but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14. GNU General Public License for more details.
  15.  
  16. You should have received a copy of the GNU General Public License
  17. along with GNU CC; see the file COPYING.  If not, write to
  18. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  19.  
  20. #define MIPS_SVR4
  21.  
  22. #define CPP_PREDEFINES \
  23. "-Dmips -Dunix -Dhost_mips -DMIPSEB -DR3000 -DSYSTYPE_SVR4 \
  24. -D_mips -D_unix -D_host_mips -D_MIPSEB -D_R3000 -D_SYSTYPE_SVR4 \
  25. -D_MIPS_SZINT=32 -D_MIPS_SZLONG=32 -D_MIPS_SZPTR=32 \
  26. -Asystem(unix) -Asystem(svr4) -Acpu(mips) -Amachine(mips)"
  27.  
  28. #define STANDARD_INCLUDE_DIR "/svr4/usr/include"
  29.  
  30. #define LINK_SPEC "\
  31. %{G*} %{EB} %{EL} %{mips1} %{mips2} %{mips3} \
  32. %{bestGnum} %{shared} %{non_shared} \
  33. %{call_shared} %{no_archive} %{exact_version} \
  34. %{!shared: %{!non_shared: %{!call_shared: -non_shared}}} \
  35. -systype /svr4/ "
  36.             
  37. #define LIB_SPEC "%{p:-lprof1} %{pg:-lprof1} -lc crtn.o%s"
  38.  
  39. #define STARTFILE_SPEC "%{pg:gcrt0.o%s}%{!pg:%{p:mcrt0.o%s}%{!p:crt1.o%s}}\
  40.     %{ansi:/svr4/usr/ccs/lib/values-Xc.o%s} \
  41.                           %{!ansi: \
  42.                            %{traditional:/svr4/usr/ccs/lib/values-Xt.o%s} \
  43.                            %{!traditional:/svr4/usr/ccs/lib/values-Xa.o%s}}"
  44.  
  45. #define MACHINE_TYPE "RISC-OS System V.4 Mips"
  46.  
  47. /* Override defaults for finding the MIPS tools.  */
  48. #define MD_STARTFILE_PREFIX "/svr4/usr/lib/cmplrs/cc/"
  49. #define MD_EXEC_PREFIX "/svr4/usr/lib/cmplrs/cc/"
  50.  
  51. /* Mips System V.4 doesn't have a getpagesize() function needed by the
  52.    trampoline code, so use the POSIX sysconf function to get it.
  53.    This is only done when compiling the trampoline code.  */
  54.  
  55. #ifdef  L_trampoline
  56. #include <unistd.h>
  57.  
  58. /* In at least 5.0 and 5.01, there is no _SC_PAGE_SIZE macro, only a
  59.    _SC_PAGESIZE macro.  */
  60. #ifdef _SC_PAGESIZE
  61. #define _SC_PAGE_SIZE _SC_PAGESIZE
  62. #endif
  63.  
  64. #define getpagesize()    sysconf(_SC_PAGE_SIZE)
  65. #endif /*  L_trampoline */
  66.  
  67. /* Use atexit for static constructors/destructors, instead of defining
  68.    our own exit function.  */
  69. #define HAVE_ATEXIT
  70.  
  71. /* Generate calls to memcpy, etc., not bcopy, etc.  */
  72. #define TARGET_MEM_FUNCTIONS
  73.  
  74. #include "mips/mips.h"
  75.  
  76. /* Some assemblers have a bug that causes backslash escaped chars in .ascii
  77.    to be misassembled, so we just completely avoid it.  */
  78. #undef ASM_OUTPUT_ASCII
  79. #define ASM_OUTPUT_ASCII(FILE,PTR,LEN)            \
  80. do {                            \
  81.   unsigned char *s;                    \
  82.   int i;                        \
  83.   for (i = 0, s = (unsigned char *)(PTR); i < (LEN); s++, i++)    \
  84.     {                            \
  85.       if ((i % 8) == 0)                    \
  86.     fputs ("\n\t.byte\t", (FILE));            \
  87.       fprintf ((FILE), "%s0x%x", (i%8?",":""), (unsigned)*s); \
  88.     }                            \
  89.   fputs ("\n", (FILE));                    \
  90. } while (0)
  91.